package interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class SomeInterceptors implements HandlerInterceptor {
	
	/**
	 * 前端控制器先调用preHandle方法，如果该方法返回值为true,表示继续向后调用；
	 * 如果返回值为false,则不再向后调用；这里可以重定向到相应的页面
	 * 形式参数handler: 处理器方法对象。
	 */
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		System.out.println("preHandle()");
		return true;
	}

	/**
	 * 处理器的方法已经执行完毕，正准备将处理结果(ModelAndView)返回给前端控制器之前，执行postHandle方法。
	 * 可以在该方法里面，修改ModelAndView。
	 */
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		System.out.println("postHandle()");

	}

	/**
	 * 最后执行的方法。
	 * 形式参数ex:处理器所抛出的异常。
	 * 注：如果preHandle方法返回值为false,
	 * 不会执行afterCompletion。
	 */
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		System.out.println("afterCompletion()");

	}

}
